////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  asf_3_0_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef ASF_3_0_0_H
#define ASF_3_0_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define ASF_3_0_0_NAMESPACE_BEGIN namespace asf_3_0_0 {
#define ASF_3_0_0_NAMESPACE_END }

ASF_3_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// asf30_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct asf30_rgn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_hpf_symmetric_coeff_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   1st layer 7x7 sharpening coefficients
    /// Default Value: 0, 0, 0, -1, -2, -25, -86, -173, -180, 1968
    /// Range:         [[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-1023, 1023],[-2047, 2047]]
    /// Bit Depth:     12 bits([9], center), 11 bits([8]), 10 bits(otherwise). All are Q10 numbers
    /// Length:        10
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_hpf_symmetric_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_hpf_symmetric_coeff - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0, 0, 0, -1, -2, -25, -86, -173, -180, 1968
        /// Length:        10
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_hpf_symmetric_coeff[10];
    } layer_1_hpf_symmetric_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_lpf_symmetric_coeff_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Description: 1st layer 7x7 low-pass filter coefficients
    /// Default Value: 4 8 12 16 16 24 32 36 48 64
    /// Range:         [[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-511, 511],[-1023, 1023],[-2047, 2047]]
    /// Bit Depth:      12 bits([9], center), 11 bits([8]), 10 bits(otherwise). All are Q10 numbers
    /// Length:        10
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_lpf_symmetric_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_lpf_symmetric_coeff - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 4 8 12 16 16 24 32 36 48 64
        /// Length:        10
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_lpf_symmetric_coeff[10];
    } layer_1_lpf_symmetric_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_activity_band_pass_coeff_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   1st layer 5x5 activity band-pass filter (one-eighth coefficients)
    /// Default Value: -4, -16, -24, 0, 32, 112
    /// Range:         [[-127, 127],[-127, 127],[-127,127],[-127, 127],[-255, 255],[-511, 511]]
    /// Bit Depth:     10 bits([5], center), 9 bits([4]), 8 bits(otherwise). All are Q8 numbers
    /// Length:        6
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_activity_band_pass_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_activity_band_pass_coeff - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: -4, -16, -24, 0, 32, 112
        /// Length:        6
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_activity_band_pass_coeff[6];
    } layer_1_activity_band_pass_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_activity_normalization_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   level-based normalization LUT to calculate normalized activity
    /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 
    /// Range:         [0.0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_activity_normalization_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_activity_normalization_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_activity_normalization_lut[64];
    } layer_1_activity_normalization_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_weight_modulation_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   normalized activity-based LUT to control the slope(output/input) when sharpened value magnitude is less
    ///                than the soft threshold
    /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 
    /// Range:         [0.0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_weight_modulation_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_weight_modulation_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_weight_modulation_lut[64];
    } layer_1_weight_modulation_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_soft_threshold_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   level-based soft-thresholding LUT to determine the final sharpened value
    /// Default Value: 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
    /// Range:         [0, 255]
    /// Bit Depth:     8 bits. Unsigned Q0 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_soft_threshold_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_soft_threshold_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_soft_threshold_lut[64];
    } layer_1_soft_threshold_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_gain_positive_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   level-based sharpening gain LUT for positive halos
    /// Default Value: 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65
    /// Range:         [0.0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_gain_positive_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_gain_positive_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_gain_positive_lut[64];
    } layer_1_gain_positive_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_gain_negative_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   level-based sharpening gain LUT for negative halos
    /// Default Value: 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65
    /// Range:         [0.0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_gain_negative_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_gain_negative_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65 1.65
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_gain_negative_lut[64];
    } layer_1_gain_negative_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_gain_weight_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   normalized activity-based sharpening gain LUT
    /// Default Value: 0.5000 0.5419 0.6475 0.7719 0.8752 0.9414 0.9753 0.9894 0.9943 0.9956 0.9959 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960
    /// Range:         [0.0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_1_gain_weight_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_1_gain_weight_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0.5000 0.5419 0.6475 0.7719 0.8752 0.9414 0.9753 0.9894 0.9943 0.9956 0.9959 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_1_gain_weight_lut[64];
    } layer_1_gain_weight_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_gamma_corrected_luma_target
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   luma target after gamma to control level-based sharpening.
    /// Default Value: 128
    /// Range:         [0, 255]
    /// Bit Depth:     8 bits Q0. unsigned
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_gamma_corrected_luma_target;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_gain_cap
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   upper cap of sharpening gain
    /// Default Value: 7.9
    /// Range:         [0.0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5 numbers
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_gain_cap;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_clamp_ul
    ///
    /// Tuning Level:  often_tune
    /// Description:   Manual fixed positive clamping level sharpening
    /// Default Value: 128
    /// Range:         [-255, 255]
    /// Bit Depth:     9 bits. Signed Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_clamp_ul;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_clamp_ll
    ///
    /// Tuning Level:  often_tune
    /// Description:   Manual fixed negative clamping level sharpening
    /// Default Value: -128
    /// Range:         [-255, 255]
    /// Bit Depth:     9 bits. Signed Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_clamp_ll;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_norm_scale
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   scale factor of 5x5 band-pass filter output (activity)
    /// Default Value: 3.98
    /// Range:         [0.0, 3.984375]
    /// Bit Depth:     8 bits. unsigned Q6 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_norm_scale;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_activity_clamp_threshold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   static clamp of 5x5 band-pass filter output (activity)
    /// Default Value: 255
    /// Range:         [0, 255]
    /// Bit Depth:     8 bits. unsigned Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_activity_clamp_threshold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_l2_norm_en
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable L2 norm for 5x5 band-pass filter output (activity). 0: L1 norm (absolute value), 1: L2 norm
    ///                (squared value)
    /// Default Value: 0
    /// Range:         [0,1]
    /// Bit Depth:     1 bit.
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_l2_norm_en;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_median_blend_upper_offset
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   upper offset of median blend
    /// Default Value: 0
    /// Range:         [0, 0.9375]
    /// Bit Depth:     4 bits. Unsigned Q4.
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_median_blend_upper_offset;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_median_blend_lower_offset
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   lower offset of median blend. Has to be smaller than upper offset.
    /// Default Value: 0
    /// Range:         [0, 0.9375]
    /// Bit Depth:     4 bits. Unsigned Q4.
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_median_blend_lower_offset;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_sp
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   3x3 median filter smoothing percentage
    /// Default Value: 0
    /// Range:         [0, 100]
    /// Bit Depth:     5 bits. Unsigned Q4.
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_1_sp;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_hpf_symmetric_coeff_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   2nd layer 9x9 sharpening coefficients (one-eighth coefficients, every other pixels and lines are skipped)
    /// Default Value: -1, -4, -6, -16, -24, 220 
    /// Range:         [[-127,127],[-127,127],[-127,127],[-127,127],[-255, 255],[-511, 511]]
    /// Bit Depth:     10 bits([5], center), 9 bits([4]), 8 bits(otherwise). All are Q8 numbers.
    /// Length:        6
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_hpf_symmetric_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_hpf_symmetric_coeff - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: -1, -4, -6, -16, -24, 220 
        /// Length:        6
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_hpf_symmetric_coeff[6];
    } layer_2_hpf_symmetric_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_lpf_symmetric_coeff_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   2nd layer 9x9 low-pass filter coefficients (one-eighth coefficients, every other pixels and lines are
    ///                skipped)
    /// Default Value: 4, 16, 24, 64, 96, 144
    /// Range:         [[-127,127],[-127,127],[-127,127],[-127,127],[-255, 255],[-511, 511]]
    /// Bit Depth:     10 bits([5], center), 9 bits([4]), 8 bits(otherwise). All are Q8 numbers.
    /// Length:        6
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_lpf_symmetric_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_lpf_symmetric_coeff - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 4, 16, 24, 64, 96, 144
        /// Length:        6
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_lpf_symmetric_coeff[6];
    } layer_2_lpf_symmetric_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_activity_band_pass_coeff_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   2nd layer 5x5 activity band-pass filter (one-eighth coefficients)
    /// Default Value: -4, -16, -24, 0, 32, 112 
    /// Range:         [[-127,127],[-127,127],[-127,127],[-127,127],[-255, 255],[-511, 511]]
    /// Bit Depth:     10 bits([5], center), 9 bits([4]), 8 bits(otherwise). All are Q8 numbers.
    /// Length:        6
    /// Conversion:    no conversion needed
    /// Notes:         don't interpolate
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_activity_band_pass_coeff_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_activity_band_pass_coeff - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: -4, -16, -24, 0, 32, 112 
        /// Length:        6
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_activity_band_pass_coeff[6];
    } layer_2_activity_band_pass_coeff_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_activity_normalization_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   level-based normalization LUT to calculate normalized activity
    /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996
    /// Range:         [0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_activity_normalization_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_activity_normalization_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_activity_normalization_lut[64];
    } layer_2_activity_normalization_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_weight_modulation_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   normalized activity-based LUT to control the slope(output/input) when sharpened value magnitude is less
    ///                than the soft threshold
    /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 
    /// Range:         [0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_weight_modulation_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_weight_modulation_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 0.996 0.996 0.996 0.996 0.996 0.996  0.996 0.996 
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_weight_modulation_lut[64];
    } layer_2_weight_modulation_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_soft_threshold_lut_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   level-based soft-thresholding LUT to determine the final sharpened value
    /// Default Value: 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
    /// Range:         [0, 255]
    /// Bit Depth:     8 bits. Unsigned Q0 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_soft_threshold_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_soft_threshold_lut - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_soft_threshold_lut[64];
    } layer_2_soft_threshold_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_gain_positive_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   level-based sharpening gain LUT for positive halos
    /// Default Value: 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55
    /// Range:         [0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_gain_positive_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_gain_positive_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_gain_positive_lut[64];
    } layer_2_gain_positive_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_gain_negative_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   level-based sharpening gain LUT for negative halos
    /// Default Value: 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55
    /// Range:         [0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_gain_negative_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_gain_negative_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55 0.55
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_gain_negative_lut[64];
    } layer_2_gain_negative_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_gain_weight_lut_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   normalized activity-based sharpening gain LUT
    /// Default Value: 0.5000 0.5419 0.6475 0.7719 0.8752 0.9414 0.9753 0.9894 0.9943 0.9956 0.9959 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960
    /// Range:         [0, 0.99609375]
    /// Bit Depth:     8 bits. Unsigned Q8 numbers.
    /// Length:        64
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct layer_2_gain_weight_lut_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// layer_2_gain_weight_lut - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0.5000 0.5419 0.6475 0.7719 0.8752 0.9414 0.9753 0.9894 0.9943 0.9956 0.9959 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960 0.9960
        /// Length:        64
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT layer_2_gain_weight_lut[64];
    } layer_2_gain_weight_lut_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_clamp_ul
    ///
    /// Tuning Level:  often_tune
    /// Description:   normalized activity-based sharpening gain LUT
    /// Default Value: 128
    /// Range:         [-255, 255]
    /// Bit Depth:     9 bits. Signed Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_2_clamp_ul;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_clamp_ll
    ///
    /// Tuning Level:  often_tune
    /// Description:   Manual fixed negative clamping level sharpening
    /// Default Value: -128
    /// Range:         [-255, 255]
    /// Bit Depth:     9 bits. Signed Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_2_clamp_ll;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_norm_scale
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   scale factor of 5x5 band-pass filter output (activity)
    /// Default Value: 3.98
    /// Range:         [0, 3.984375]
    /// Bit Depth:     8 bits. unsigned Q6 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_2_norm_scale;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_activity_clamp_threshold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   static clamp of 5x5 band-pass filter output (activity)
    /// Default Value: 255
    /// Range:         [0, 255]
    /// Bit Depth:     8 bits. Unsigned Q0 number
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_2_activity_clamp_threshold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_l2_norm_en
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable L2 norm for 5x5 band-pass filter output (activity).0: L1 norm (absolute value), 1: L2 norm
    ///                (squared value)
    /// Default Value: 0
    /// Range:         [0,1]
    /// Bit Depth:     1 bit.
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  layer_2_l2_norm_en;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// radial_activity_adj_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   correction factor for activity based on radial distance
    /// Default Value: 1.0, 1.0, 1.0, 1.0
    /// Range:         [0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5
    /// Length:        4
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct radial_activity_adj_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// radial_activity_adj - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 1.0, 1.0, 1.0, 1.0
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT radial_activity_adj[4];
    } radial_activity_adj_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// radial_gain_adj_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   correction factor for gain based on radial distance
    /// Default Value: 1 1 1 1
    /// Range:         [0, 7.96875]
    /// Bit Depth:     8 bits. Unsigned Q5
    /// Length:        4
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct radial_gain_adj_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// radial_gain_adj - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 1 1 1 1
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT radial_gain_adj[4];
    } radial_gain_adj_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_hue_min
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Min hue value for skin detection. Instead of negative (Cb/Cr), absolute value |Cb/Cr| is used in HW
    /// Default Value: -1.7
    /// Range:         [-3.0, -1.0]
    /// Bit Depth:     10bit, Q8, unsigned
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_hue_min;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_hue_max
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Max hue value for skin detection. Instead of negative (Cb/Cr), absolute value |Cb/Cr| is used in HW
    /// Default Value: -0.5
    /// Range:         [-0.99609375, 0.99609375]
    /// Bit Depth:     8bit, Q8, unsigned
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_hue_max;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_y_min
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Minimum Y value for skin.
    /// Default Value: 0.1
    /// Range:         [0, 0.99609375]
    /// Bit Depth:     8bit, Q8, unsigned
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_y_min;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_y_max
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Maximum Y value for skin.
    /// Default Value: 0.9
    /// Range:         [0, 0.99609375]
    /// Bit Depth:     8bit, unsigned Q8
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_y_max;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_saturation_min_ymax
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Minimum saturation value for skin when Y=Y_max.
    /// Default Value: 0.05
    /// Range:         [0.0, 0.4]
    /// Bit Depth:     8bit, unsigned Q8
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_saturation_min_ymax;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_saturation_max_ymax
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Maximum saturation value for skin when Y=Y_max.
    /// Default Value: 0.25
    /// Range:         [0.1, 0.5]
    /// Bit Depth:     8bit, unsigned Q8
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_saturation_max_ymax;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_saturation_min_ymin
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Minimum saturation value for skin when Y=Y_min.
    /// Default Value: 0.25
    /// Range:         [0.0, 0.5]
    /// Bit Depth:     8bit, unsigned Q8
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_saturation_min_ymin;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_saturation_max_ymin
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Maximum saturation value for skin when Y=Y_min.
    /// Default Value: 0.65
    /// Range:         [0.2, 0.99609375]
    /// Bit Depth:     8bit, unsigned Q8
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_saturation_max_ymin;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_boundary_probability
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Denoting the skin-tone probability at the boundary of skin-tone range.
    /// Default Value: 8
    /// Range:         [1, 15]
    /// Bit Depth:     4 bits. Unsigned Q4
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_boundary_probability;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_percent
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   The portion of skin_tone region with skin-tone probability 1.
    /// Default Value: 12
    /// Range:         [0, 100]
    /// Bit Depth:     Not applicable
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_percent;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_nonskin_to_skin_qratio
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Ratio between Q_nonSkin and Q_skin.
    /// Default Value: 0.5
    /// Range:         [0.1, 10.0]
    /// Bit Depth:     Not applicable
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  skin_nonskin_to_skin_qratio;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// flat_thresold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Apply edge smoothing only when maximum AAD (average absolute difference) is larger or equal to
    ///                FlatThreshold.
    /// Default Value: 8
    /// Range:         [0, 25]
    /// Bit Depth:     8uQ0
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  flat_thresold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// max_smoothing_clamp
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   edge smoothing value change is clamped by max_smoothing_clamp.
    /// Default Value: 8
    /// Range:         [0, 25]
    /// Bit Depth:     8uQ0
    /// Conversion:    no conversion needed
    /// Notes:         previously called texture_threshold
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  max_smoothing_clamp;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// corner_threshold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Separate corner from edge.
    /// Default Value: 2
    /// Range:         [0, 63.9990234375]
    /// Bit Depth:     16 bits. unsigned Q10
    /// Conversion:    no conversion needed
    /// Notes:         previously called similarity_threshold
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  corner_threshold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// smoothing_strength
    ///
    /// Tuning Level:  often_tune
    /// Description:   Blending factor between original pixel and edge smoothed pixel.
    /// Default Value: 0.5
    /// Range:         [0, 0.9990234375]
    /// Bit Depth:     10 bits. unsigned Q10
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  smoothing_strength;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gain_contrast_positive_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contrast-based positive halo sharpening gain
    /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        32
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gain_contrast_positive_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gain_contrast_positive - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
        /// Length:        32
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gain_contrast_positive[32];
    } gain_contrast_positive_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gain_contrast_negative_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contrast-based negative halo sharpening gain LUT
    /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        32
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gain_contrast_negative_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gain_contrast_negative - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
        /// Length:        32
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gain_contrast_negative[32];
    } gain_contrast_negative_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_gain_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Skin-detection-based sharpening gain
    /// Default Value: 1.0000 1.0000 1.0000 0.9531 0.9063 0.8594 0.8125 0.7656 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        17
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct skin_gain_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// skin_gain - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.0000 1.0000 1.0000 0.9531 0.9063 0.8594 0.8125 0.7656 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188 0.7188
        /// Length:        17
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT skin_gain[17];
    } skin_gain_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// skin_activity_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Skin-detection-based activity gain
    /// Default Value: 1.0000 0.9688 0.9375 0.9063 0.8750 0.8438 0.8125 0.7813 0.7500 0.7188 0.6875 0.6563 0.6250 0.5938 0.5625 0.5313 0.5000
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        17
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct skin_activity_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// skin_activity - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 1.0000 0.9688 0.9375 0.9063 0.8750 0.8438 0.8125 0.7813 0.7500 0.7188 0.6875 0.6563 0.6250 0.5938 0.5625 0.5313 0.5000
        /// Length:        17
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT skin_activity[17];
    } skin_activity_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gain_chroma_positive_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Chroma gradient-based positive halo sharpening gain
    /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        32
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gain_chroma_positive_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gain_chroma_positive - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
        /// Length:        32
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gain_chroma_positive[32];
    } gain_chroma_positive_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gain_chroma_negative_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Chroma gradient-based negative halo sharpening gain LUT
    /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
    /// Range:         [0.00390625, 1]
    /// Bit Depth:     9 bits. unsigned Q8
    /// Length:        32
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gain_chroma_negative_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gain_chroma_negative - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9375 0.8750 0.8125 0.7500 0.6875 0.6250 0.5625 0.5000 0.4375 0.3750 0.3125 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
        /// Length:        32
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gain_chroma_negative[32];
    } gain_chroma_negative_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// face_boundary
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   full skin detection is applied when radius less-or-equal to face_boundary * face_radius(from face
    ///                detection).
    /// Default Value: 1.2
    /// Range:         [0, 8]
    /// Bit Depth:     not applicable
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  face_boundary;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// face_transition
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   No skin detection is applied when radius less-or-equal to face_transition * face_radius(from face
    ///                detection).
    /// Default Value: 2.0
    /// Range:         [0, 8]
    /// Bit Depth:     not applicable
    /// Conversion:    no conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                                  face_transition;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_asf30_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_asf30_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::trigger_pt_type_aec aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// asf30_rgn_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    asf30_rgn_dataType  asf30_rgn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_asf30_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_asf30_hdr_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type_aec_hdr hdr_aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct hdr_aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_asf30_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                  mod_asf30_aec_dataCount;
        UINT32                  mod_asf30_aec_dataID;
        mod_asf30_aec_dataType* mod_asf30_aec_data;
    } hdr_aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_asf30_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_asf30_drc_gain_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type drc_gain_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct drc_gain_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_asf30_hdr_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                      mod_asf30_hdr_aec_dataCount;
        UINT32                      mod_asf30_hdr_aec_dataID;
        mod_asf30_hdr_aec_dataType* mod_asf30_hdr_aec_data;
    } drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_asf30_total_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_asf30_total_scale_ratio_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// total_scale_ratio_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type         total_scale_ratio_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// total_scalor_ratio_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct total_scalor_ratio_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_asf30_drc_gain_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                       mod_asf30_drc_gain_dataCount;
        UINT32                       mod_asf30_drc_gain_dataID;
        mod_asf30_drc_gain_dataType* mod_asf30_drc_gain_data;
    } total_scalor_ratio_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_asf30_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_asf30_coreType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_asf30_total_scale_ratio_data - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                                mod_asf30_total_scale_ratio_dataCount;
    UINT32                                mod_asf30_total_scale_ratio_dataID;
    mod_asf30_total_scale_ratio_dataType* mod_asf30_total_scale_ratio_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_asf30_reserveType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_asf30_reserveType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// radial_anchor_tab
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   anchor table (distance percentage)for radius based noise reduction
    /// Default Value: 0.4 0.6 0.8 1
    /// Range:         [0.0, 1.0]
    /// Bit Depth:     float
    /// Length:        4
    /// Conversion:    No Conversion needed
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct radial_anchor_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// radial_anchor - Array
        ///
        /// Tuning Level:  rarely_tune
        /// Default Value: 0.4 0.6 0.8 1
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT radial_anchor[4];
    } radial_anchor_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// face_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable bit of face guided skin color based noise reduction
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         if face_enable = 1 and skin_enable = 1, skin color noise reduction is applied on face regions; if
    ///                face_enable = 0 and skin_enable=1, skin color noise reduction is applied on both face regions and
    ///                non-face regions
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  face_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// edge_alignment_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable edge alignment
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  edge_alignment_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_1_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable bit of 1st layer 7x7 ASF
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  layer_1_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// layer_2_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable bit of 2nd layer 13x13 ASF
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  layer_2_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// radial_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable bit of radial distance based sharpening
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  radial_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// contrast_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   enable bit of contrast based sharpening.
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::enable_flag_type  contrast_enable;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_asf30Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_asf30Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// enable_section
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct enable_sectionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        globalelements::enable_flag_type asf_enable;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// skin_enable
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   enable bit of skin color based noise reduction
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Notes:         if face_enable = 1 and skin_enable = 1, skin color noise reduction is applied on face regions; if
        ///                face_enable = 0 and skin_enable=1, skin color noise reduction is applied on both face regions and
        ///                non-face regions
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        globalelements::enable_flag_type skin_enable;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// chroma_gradient_enable
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   enable bit of chroma gradient statistics
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Notes:         none
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        globalelements::enable_flag_type chroma_gradient_enable;
    } enable_section;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_variables
    ///
    /// Default Value: control_total_scale_ratio, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_variablesStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// control_var_type - Array
        /// Default Value: control_total_scale_ratio, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        enum class control_var_typeEnum
        {
            control_drc_gain                  = 0,
            control_exp_time_ratio            = 1,
            control_aec_exp_sensitivity_ratio = 2,
            control_lux_idx                   = 3,
            control_gain                      = 4,
            control_total_scale_ratio         = 5
        } control_var_type[4];
    } control_variables;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_methodStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_exp_control
        /// Default Value: control_gain
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_type     aec_exp_control;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_hdr_control
        /// Default Value: control_aec_exp_sensitivity_ratio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_hdr_type aec_hdr_control;
    } control_method;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dynamic_enable_triggers
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct dynamic_enable_triggersStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// asf_enable
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        struct asf_enableStruct
        {
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Binary file symbol table entry ID
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            UINT32 SymbolTableID;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// enable
            ///
            /// Tuning Level:  rarely_tune
            /// Description:   enable ASF3.0 module
            /// Default Value: 0
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            globalelements::enable_flag_type        enable;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_control_var
            ///
            /// Tuning Level:  rarely_tune
            /// Description:   enable ASF3.0 module
            /// Default Value: control_gain
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::control_var_type        hyst_control_var;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_mode
            /// Default Value: UPWARD
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::hyst_direction          hyst_mode;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_trigger
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::trigger_pt_couplet_type hyst_trigger;
        } asf_enable;
    } dynamic_enable_triggers;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_asf30_reserve
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_asf30_reserveType chromatix_asf30_reserve;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_asf30_core
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_asf30_coreType    chromatix_asf30_core;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_asf30TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_asf30TypeClass : public ParameterModule, public chromatix_asf30Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 3;
    static const UINT16 MINOR = 0;
    static const UINT32 PATCH = 0;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_asf30TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_asf30TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_asf30TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_hpf_symmetric_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_hpf_symmetric_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_hpf_symmetric_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_lpf_symmetric_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_lpf_symmetric_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_lpf_symmetric_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_activity_band_pass_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_activity_band_pass_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_activity_band_pass_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_activity_normalization_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_activity_normalization_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_activity_normalization_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_weight_modulation_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_weight_modulation_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_weight_modulation_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_soft_threshold_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_soft_threshold_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_soft_threshold_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_gain_positive_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_gain_positive_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_gain_positive_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_gain_negative_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_gain_negative_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_gain_negative_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_1_gain_weight_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_1_gain_weight_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_1_gain_weight_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_hpf_symmetric_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_hpf_symmetric_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_hpf_symmetric_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_lpf_symmetric_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_lpf_symmetric_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_lpf_symmetric_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_activity_band_pass_coeff_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_activity_band_pass_coeff_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_activity_band_pass_coeff_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_activity_normalization_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_activity_normalization_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_activity_normalization_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_weight_modulation_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_weight_modulation_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_weight_modulation_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_soft_threshold_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_soft_threshold_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_soft_threshold_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_gain_positive_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_gain_positive_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_gain_positive_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_gain_negative_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_gain_negative_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_gain_negative_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_layer_2_gain_weight_lut_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_layer_2_gain_weight_lut_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::layer_2_gain_weight_lut_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_radial_activity_adj_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_radial_activity_adj_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::radial_activity_adj_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_radial_gain_adj_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_radial_gain_adj_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::radial_gain_adj_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_gain_contrast_positive_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_gain_contrast_positive_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::gain_contrast_positive_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_gain_contrast_negative_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_gain_contrast_negative_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::gain_contrast_negative_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_skin_gain_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_skin_gain_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::skin_gain_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_skin_activity_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_skin_activity_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::skin_activity_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_gain_chroma_positive_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_gain_chroma_positive_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::gain_chroma_positive_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load asf30_rgn_dataType_gain_chroma_negative_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadasf30_rgn_dataType_gain_chroma_negative_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        asf30_rgn_dataType::gain_chroma_negative_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_hdr_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_hdr_aec_dataType_hdr_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_drc_gain_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_drc_gain_dataType_drc_gain_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_total_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_total_scale_ratio_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_total_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_asf30_total_scale_ratio_dataType_total_scalor_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_asf30_total_scale_ratio_dataType_total_scalor_ratio_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_asf30_total_scale_ratio_dataType::total_scalor_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_asf30_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_asf30_coreType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_asf30_reserveType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_asf30_reserveType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30_reserveType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_asf30_reserveType_radial_anchor_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_asf30_reserveType_radial_anchor_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30_reserveType::radial_anchor_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_asf30Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_asf30Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load enable_sectionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadenable_sectionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::enable_sectionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_variablesStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_variablesStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::control_variablesStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_methodStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_methodStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::control_methodStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::dynamic_enable_triggersStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct_asf_enableStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct_asf_enableStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_asf30Type::dynamic_enable_triggersStruct::asf_enableStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_hdr_aec_dataType(
        mod_asf30_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_hdr_aec_dataType_hdr_aec_dataStruct(
        mod_asf30_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_drc_gain_dataType(
        mod_asf30_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_drc_gain_dataType_drc_gain_dataStruct(
        mod_asf30_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_total_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_total_scale_ratio_dataType(
        mod_asf30_total_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_asf30_total_scale_ratio_dataType_total_scalor_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_asf30_total_scale_ratio_dataType_total_scalor_ratio_dataStruct(
        mod_asf30_total_scale_ratio_dataType::total_scalor_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_asf30_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_asf30_coreType(
        chromatix_asf30_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_asf30Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_asf30Type(
        chromatix_asf30Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_asf30TypeClass

ASF_3_0_0_NAMESPACE_END
#endif // ASF_3_0_0_H

